package com.xxxtea.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

/**
 * 聊天消息已读状态实体类
 *
 * 用于存储用户对聊天消息的已读状态，包括：
 * - 用户ID、会话ID、消息ID关联
 * - 消息已读状态管理
 * - 支持未读消息统计
 *
 * 使用MyBatis-Plus注解进行数据库映射
 * 使用Swagger注解进行API文档生成
 * 使用Builder模式构建对象
 *
 * @author badman
 * @since 1.0.0
 */
@Data
@Builder
@ApiModel("消息读取状态")
public class ChatMessageRead {
	/**
	 * 主键ID
	 * 使用自增策略
	 */
	@ApiModelProperty("主键")
	@TableId(value = "id", type = IdType.AUTO)
	private Integer id;

	/**
	 * 用户ID
	 * 消息接收者ID
	 */
	@ApiModelProperty("用户ID")
	private Integer userId;

	/**
	 * 会话ID
	 * 关联ChatSession表
	 */
	@ApiModelProperty("会话ID")
	private Integer sessionId;

	/**
	 * 消息ID
	 * 关联ChatMessage表
	 */
	@ApiModelProperty("消息ID")
	private Integer messageId;

	/**
	 * 是否已读
	 * 使用反引号避免与SQL关键字冲突
	 */
	@TableField(value = "`read`")
	@ApiModelProperty("是否已读")
	private boolean read;
}
